package model;

import java.util.LinkedList;
import java.util.Random;

/**
 * Cette classe définit un objet Paquet
 * soit une pile de cartes
 * @author Petitjean Pierre
 *
 */
public class Paquet {
	
	/** Taille du paquet */
	public static final int taillePaquet = 52; 
	
	/** La pile de cartes */
	private LinkedList<Carte> pile = new LinkedList<Carte>();

	/** 
	 * Crée un paquet 
	 */
	public Paquet() {
		super();
		melanger();
	}
	
	/** 
	 * Crée le paquet de cartes 
	 */
	@SuppressWarnings("unused")
	public void melanger () {	
		
		pile.clear();
		
		while (pile.size() < taillePaquet) {
			Random random = new Random();
			int randomCouleur = random.nextInt(Carte.nbCouleurs);
			int randomValeur= random.nextInt(Carte.nbValeurs);
			Carte randomCarte = new Carte(randomCouleur, randomValeur);
			if (!pile.contains(randomCarte)) pile.push(randomCarte);
		}	
	}
	
	/**
	 * Brûler une carte
	 */
	private void bruler() {
		pile.pop();
	}
	
	/**
	 * Tirage d'une carte
	 */
	public Carte tirageUneCarte() {
		return (pile.pop());
	}
	
	/**
	 * Tirage flop
	 */
	public LinkedList<Carte> tirageFlop() {
		bruler();
		LinkedList<Carte> flop = new LinkedList<Carte>();
		for (int i=0; i<3; i++) flop.add(pile.pop());
		return flop; 
	}
	
	/**
	 * Tirage turn ou river
	 */
	public Carte tirageTurnRiver() {
		bruler();
		return pile.pop(); 
	}
}
